home *** CD-ROM | disk | FTP | other *** search
- /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
- /* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Mozilla.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications.
- * Portions created by the Initial Developer are Copyright (C) 2001
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Gagan Saksena <gagan@netscape.com> (original author)
- * Darin Fisher <darin@netscape.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
- #include "nsIProxiedProtocolHandler.idl"
-
- [scriptable, uuid(122c91c0-2485-40ba-89c9-b895934921bc)]
- interface nsIHttpProtocolHandler : nsIProxiedProtocolHandler
- {
- /**
- * Get the HTTP advertised user agent string.
- */
- readonly attribute ACString userAgent;
-
- /**
- * Get the application name.
- *
- * @return The name of this application (eg. "Mozilla").
- */
- readonly attribute ACString appName;
-
- /**
- * Get the application version string.
- *
- * @return The complete version (major and minor) string. (eg. "5.0")
- */
- readonly attribute ACString appVersion;
-
- /**
- * @return The vendor name.
- */
- attribute ACString vendor;
-
- /**
- * @return The vendor sub string.
- */
- attribute ACString vendorSub;
-
- /**
- * @return The vendor comment.
- */
- attribute ACString vendorComment;
-
- /**
- * @return The product name.
- */
- attribute ACString product;
-
- /**
- * @return A product sub string.
- */
- attribute ACString productSub;
-
- /**
- * @return A product comment.
- */
- attribute ACString productComment;
-
- /**
- * Get the current platform.
- *
- * @return The platform this application is running on
- * (eg. "Windows", "Macintosh", "X11")
- */
- readonly attribute ACString platform;
-
- /**
- * Get the current oscpu.
- *
- * @return The oscpu this application is running on
- */
- readonly attribute ACString oscpu;
-
- /**
- * Get the translation of the application. The value for language
- * is usually a 2-letter code such as "en" and occasionally a
- * five-character code to indicate a language subtype, such as "zh_CN".
- */
- attribute ACString language;
-
- /**
- * Get/Set the application comment misc portion.
- */
- attribute ACString misc;
- };
-
- %{C++
- /**
- * At initialization time, the HTTP handler will initialize each service
- * registered under this category:
- */
- #define NS_HTTP_STARTUP_CATEGORY "http-startup-category"
-
- /**
- * nsIObserver notification corresponding to startup category. Services
- * registered under the startup category will receive this observer topic at
- * startup if they implement nsIObserver. The "subject" of the notification
- * is the nsIHttpProtocolHandler instance.
- */
- #define NS_HTTP_STARTUP_TOPIC "http-startup"
-
- /**
- * Before an HTTP request is sent to the server, this observer topic is
- * notified. The observer of this topic can then choose to set any additional
- * headers for this request before the request is actually sent to the server.
- * The "subject" of the notification is the nsIHttpChannel instance.
- */
- #define NS_HTTP_ON_MODIFY_REQUEST_TOPIC "http-on-modify-request"
-
- /**
- * After an HTTP server response is received, this observer topic is notified.
- * The observer of this topic can interrogate the response. The "subject" of
- * the notification is the nsIHttpChannel instance.
- */
- #define NS_HTTP_ON_EXAMINE_RESPONSE_TOPIC "http-on-examine-response"
-
- /**
- * The observer of this topic is notified after the received HTTP response
- * is merged with data from the browser cache. This means that, among other
- * things, the Content-Type header will be set correctly.
- */
- #define NS_HTTP_ON_EXAMINE_MERGED_RESPONSE_TOPIC "http-on-examine-merged-response"
- %}
-